﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJM.SPP.AccesoDatos;
using MJM.SPP.EntidadesNegocio;

namespace MJM.SPP.ComponentesNegocio
{
    public class AccesoGrupoCN
    {
        AccesoGrupoAD objAccesoGrupoAD = new AccesoGrupoAD();

        public int Insertar(AccesoGrupoEN obj)
        {
            return objAccesoGrupoAD.Insertar(obj);
        }

        public List<AccesoGrupoEN> Listar_Programa_Grupo(int Grupo)
        {
            return objAccesoGrupoAD.Listar_Programa_Grupo(Grupo);
        }

        public List<AccesoGrupoEN> Listar_Modulos_Grupo(int idGrupo,int idPrograma)
        {
            return objAccesoGrupoAD.Listar_Modulos_Grupo(idGrupo,idPrograma);           
        }

        public List<AccesoGrupoEN> Listar_Opciones_Grupo(int idGrupo, int idModulo, int idPrograma)
        {
            return objAccesoGrupoAD.Listar_Modulos_SubOpcion(idPrograma, idModulo, idGrupo);
        }

        public List<AccesoGrupoEN> Listar_Controles_Grupo(int idGrupo, int idModulo, int idSubOpcion, int idPrograma)
        {
            return objAccesoGrupoAD.Listar_Modulos_Control(idSubOpcion, idModulo, idGrupo,idPrograma);
        }

        public int Modificar(AccesoGrupoEN obj)
        {
            return objAccesoGrupoAD.Modificar(obj);
        }

        public List<AccesoGrupoEN> Listar_Programa(int idPrograma)
        {
            return objAccesoGrupoAD.Listar_Programa(idPrograma);
        }

        public int EliminarPermisosPrograma(int idPrograma)
        {
            List<AccesoGrupoEN> lst = Listar_Programa(idPrograma);
            for (int i = 0; i < lst.Count; i++)
            { 
                //if(lst[i].PERGRU_P_inID==idPermiso)
               // {
                    lst[i].PERGRU_inFLAELI = 0;
                  //  EliminarPermisosModulo(lst[i].OPTGEN_P_inID);
                    objAccesoGrupoAD.Modificar(lst[i]);
               // }
            }

            return 0;
        }

        public int EliminarPermisosModulo(int idModulo)
        {
            List<AccesoGrupoEN> lst = objAccesoGrupoAD.Listar_Modulo(idModulo);
            for (int i = 0; i < lst.Count; i++)
            {
              // if (lst[i].PERGRU_P_inID == idPermiso)
              //  {
                    lst[i].PERGRU_inFLAELI = 0;
             //       EliminarPermisosOpcion(lst[i].SUBOPT_P_inID);
                    objAccesoGrupoAD.Modificar(lst[i]);
               // }
            }
            return 0;
        }

        public int EliminarPermisosOpcion(int idOpcion)
        {
            List<AccesoGrupoEN> lst = objAccesoGrupoAD.Listar_Opcion(idOpcion);
            for (int i = 0; i < lst.Count; i++)
            {
               // if (lst[i].PERGRU_P_inID == idPermiso)
               // {

                    lst[i].PERGRU_inFLAELI = 0;
                //    EliminarPermisosControl(lst[i].OPTCON_P_inID);
                    objAccesoGrupoAD.Modificar(lst[i]);
              //  }
            }
            return 0;            
        }

        public int EliminarPermisosControl(int idControl)
        {
            List<AccesoGrupoEN> lst = objAccesoGrupoAD.Listar_Control(idControl);
            for (int i = 0; i < lst.Count; i++)
            {
               // if (lst[i].PERGRU_P_inID == idPermiso)
               // {
                    lst[i].PERGRU_inFLAELI = 0;
                    objAccesoGrupoAD.Modificar(lst[i]);
               // }
            }
            return 0;          
        }

    }
}
